﻿using System;
using System.Collections.Generic;
using System.Text;
using Castle.ActiveRecord;
using Atendex.Dominio;

namespace Atendex.Dominio.ActiveRecord
{
    [ActiveRecord("requerente")]
    [Serializable]
    public class RequerenteAR : ActiveRecordBase<RequerenteAR>, IRequerente
    {
        private RequerenteAR() { }
        /// <summary>
        /// Constrói um requerente.
        /// </summary>
        /// <param name="nome">nome</param>
        /// <param name="meioContato">o meio de contato do requerente</param>
        internal RequerenteAR(string nome, string meioContato)
        {
            this._nome = nome;
            this._meioContato = meioContato;
        }
        private int _id;
        [PrimaryKey]
        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }
        private string _nome;
        [Property]
        public string Nome
        {
            get { return _nome; }
            set { _nome = value; }
        }
        private string _tipoRequerente;
        [Property]
        public string TipoRequerente
        {
            get { return _tipoRequerente; }
            set { _tipoRequerente = value; }
        }
        private string _telefone;
        [Property]
        public string Telefone
        {
            get { return _telefone; }
            set { _telefone = value; }
        }
        private string _email;
        [Property]
        public string Email
        {
            get { return _email; }
            set { _email = value; }
        }
        private string _meioContato;
        [Property]
        public string MeioContato
        {
            get { return _meioContato; }
            set { _meioContato = value; }
        }
        private string _cursoInteresse;
        [Property]
        public string CursoInteresse
        {
            get { return _cursoInteresse; }
            set { _cursoInteresse = value; }
        }

        #region IRequerente Members

        [BelongsTo(Type=typeof(AtendimentoAR), Cascade=CascadeEnum.All)]
        public ISolicitacao Solicitacao { get; set; }

        #endregion
    }
}
